﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ТипыИсточниковДанных
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"b7f94a96-1f06-4c76-b7d2-0ca200908d88\", \"Представление\":\"ТиповойОтчет\"}")]
		ТиповойОтчет = 0,//Типовой отчет
		[EnumMember(Value = "{\"Ссылка\":\"ff73c1a9-1ec8-4dfe-a4be-e1b6d7674e93\", \"Представление\":\"УниверсальныйОтчет\"}")]
		УниверсальныйОтчет = 1,//Универсальный отчет
		[EnumMember(Value = "{\"Ссылка\":\"4eb440e7-5bbd-477b-8542-82a129e8c7bc\", \"Представление\":\"ПроизвольныйОтчет\"}")]
		ПроизвольныйОтчет = 2,//Произвольный отчет
		[EnumMember(Value = "{\"Ссылка\":\"88e44f57-0361-4f29-9303-e1c43b5ba439\", \"Представление\":\"ВнешняяОбработка\"}")]
		ВнешняяОбработка = 3,//Внешняя обработка
	}
	public static partial class ТипыИсточниковДанных_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ТиповойОтчет = new Guid("a20cd2b7-9000-888d-4c76-1f06b7f94a96");//Типовой отчет
		public static readonly Guid УниверсальныйОтчет = new Guid("b6e1bea4-67d7-934e-4dfe-1ec8ff73c1a9");//Универсальный отчет
		public static readonly Guid ПроизвольныйОтчет = new Guid("a1824285-e829-bcc7-477b-5bbd4eb440e7");//Произвольный отчет
		public static readonly Guid ВнешняяОбработка = new Guid("c4e10393-5b3b-39a4-4f29-036188e44f57");//Внешняя обработка
		public static ТипыИсточниковДанных Получить(this ТипыИсточниковДанных Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ТипыИсточниковДанных Получить(this ТипыИсточниковДанных Значение, Guid Ссылка)
		{
			if(Ссылка == ТиповойОтчет)
			{
				return ТипыИсточниковДанных.ТиповойОтчет;
			}
			else if(Ссылка == УниверсальныйОтчет)
			{
				return ТипыИсточниковДанных.УниверсальныйОтчет;
			}
			else if(Ссылка == ПроизвольныйОтчет)
			{
				return ТипыИсточниковДанных.ПроизвольныйОтчет;
			}
			else if(Ссылка == ВнешняяОбработка)
			{
				return ТипыИсточниковДанных.ВнешняяОбработка;
			}
			return ТипыИсточниковДанных.ПустаяСсылка;
		}
		public static byte[] Ключ(this ТипыИсточниковДанных Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ТипыИсточниковДанных Значение)
		{
			switch (Значение)
			{
				case ТипыИсточниковДанных.ТиповойОтчет: return ТиповойОтчет;
				case ТипыИсточниковДанных.УниверсальныйОтчет: return УниверсальныйОтчет;
				case ТипыИсточниковДанных.ПроизвольныйОтчет: return ПроизвольныйОтчет;
				case ТипыИсточниковДанных.ВнешняяОбработка: return ВнешняяОбработка;
			}
			return Guid.Empty;
		}
	}
}